package com.example.forum.services;

import com.example.forum.model.Article;
import com.example.forum.model.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface IArticleService {
    /*
    * 调用dao3条语句
    * insert
    * 2update
    * 使用事务管理
    * */
    @Transactional //当前方法中的执行过程被事务管理起来,打包在一个事务中
    void create(Article article);

    /*查询所有帖子列数*/
    List<Article> selectAll();

    /*跟据板块id查询帖子列表*/
    List<Article> selectAllByBoardId(Long boardId);

    /*根据板块id查询详情*/
    Article selectDetailById(Long id);

    /*根据id查询帖子详情*/
    Article selectById(Long id);

    /*编辑帖子*/
    void modify(Long id,String title,String content);

    /*点赞操作*/
    void thumbsUpById(Long id);

    /*根据Id删除帖子*/
    @Transactional
    void deleteById(Long id);

    /*文章回复数+1*/
    void addOneArticleReplayCountById(Long id);

    /*根据用户id查询帖子*/
    List<Article> selectByUserId(Long userId);

}
